/*
Copyright [2023] [fuwen_soft]
*/
package vip.xiaonuo.modular.xyethnic.entity;

import com.baomidou.mybatisplus.annotation.*;
import vip.xiaonuo.core.pojo.base.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import java.time.LocalDateTime;
import java.time.LocalDate;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.*;
import cn.afterturn.easypoi.excel.annotation.Excel;
import vip.xiaonuo.modular.xyethnic.vo.DictEditStrVo;
import vip.xiaonuo.modular.xyethnic.vo.DictStrVo;

/**
 * 族员
 *
 * @author yanwei
 * @date 2023-05-05 15:44:28
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("xy_ethnic")
@ApiModel("xy_ethnic 实体")
public class XyEthnic extends BaseEntity {


    /**
     *
     */
    @ApiModelProperty("")
    @TableId(type = IdType.ASSIGN_ID)
    private String id;


    /**
     * 关联的族谱编号
     */
    @Excel(name = "关联的族谱编号")
    @ApiModelProperty("关联的族谱编号")
    private String logyId;


    /**
     * 姓氏
     */
    @Excel(name = "姓氏")
    @ApiModelProperty("姓氏")
    private String surname;


    /**
     * 名字
     */
    @Excel(name = "名字")
    @ApiModelProperty("名字")
    private String name;

    /**
     * 名字
     */
    @Excel(name = "组员头像")
    @ApiModelProperty("组员头像")
    private String headImg;


    /**
     * 常用名
     */
    @Excel(name = "常用名")
    @ApiModelProperty("常用名")
    private String commName;


    /**
     * 排序，垂直排序
     */
    @Excel(name = "排序，垂直排序")
    @ApiModelProperty("排序，垂直排序")
    private Long sortList;


    /**
     * 关系
     */
    @Excel(name = "关系")
    @ApiModelProperty("关系")
    private String relationship;


    /**
     * 真实关系，例如，兄妹,妻等。转义或的词条头衔
     */
    @Excel(name = "真实关系，例如，兄妹,妻等。转义或的词条头衔")
    @ApiModelProperty("真实关系，例如，兄妹,妻等。转义或的词条头衔")
    private String realRelationship;


    /**
     * 性别,2=女，1=男
     */
    @Excel(name = "性别,2=女，1=男")
    @ApiModelProperty("性别,2=女，1=男")
    private Long genderSex;


    /**
     * 排行
     */
    @Excel(name = "排行")
    @ApiModelProperty("排行")
    private String logySort;


    /**
     * 出生日期(农历)
     */
    @Excel(name = "出生日期(农历)")
    @ApiModelProperty("出生日期(农历)")
    private String newDate;


    /**
     * 1=公开，2=隐藏，出生日期隐藏
     */
    @Excel(name = "1=公开，2=隐藏，出生日期隐藏")
    @ApiModelProperty("1=公开，2=隐藏，出生日期隐藏")
    private Long newDatePri;


    /**
     * 用户是否在世,1=在世,2=不在世
     */
    @Excel(name = "用户是否在世,1=在世,2=不在世")
    @ApiModelProperty("用户是否在世,1=在世,2=不在世")
    private Long existUser;


    /**
     * 绑定的用户,如果为null,可以邀请绑定，否则不可以
     */
    @Excel(name = "绑定的用户,如果为null,可以邀请绑定，否则不可以")
    @ApiModelProperty("绑定的用户,如果为null,可以邀请绑定，否则不可以")
    private String userId;


    /**
     * 绑定审核 0=无需审核,1=未审核，2=已审核，审核失败
     */
    @Excel(name = "绑定审核 0=无需审核,1=未审核，2=已审核，3审核失败")
    @ApiModelProperty("绑定审核 0=无需审核,1=未审核，2=已审核，3审核失败")
    private Integer bindFlag;


    /**
     * 修改审核 0=无需审核,1=未审核，2=已审核，审核失败
     */
    @Excel(name = "修改审核 0=无需审核,1=未审核，2=已审核，3审核失败")
    @ApiModelProperty("修改审核 0=无需审核,1=未审核，2=已审核，3审核失败")
    private Integer chageFlag;

    /**
     * 修改审核 0=无需审核,1=未审核，2=已审核，审核失败
     */
    @Excel(name = "如果为null 就是新数据，有值 就是绑定的展示数据")
    @ApiModelProperty("如果为null 就是新数据，有值 就是绑定的展示数据")
    private String oldDataId;




    /**
     * 层级，多少代
     */
    @Excel(name = "层级，多少代")
    @ApiModelProperty("层级，多少代")
    private Integer levels;


    /**
     * 族父编号，默认为1始祖世
     */
    @Excel(name = "族父编号，默认为1始祖世")
    @ApiModelProperty("族父编号，默认为1始祖世")
    private String parentId;


    /**
     * 族父编号，默认为1始祖世
     */
    @Excel(name = "内部关系编号")
    @ApiModelProperty("内部关系编号")
    private String joinId;


    /**
     * 族父编号，默认为1始祖世
     */
    @Excel(name = "内部关系名称")
    @ApiModelProperty("内部关系名称")
    private String joinName;

    /**
     * 族父编号，默认为1始祖世
     */
    @Excel(name = "配偶编号,女关联男")
    @ApiModelProperty("配偶编号,女关联男")
    private String isJoin;


    /**
     * 族父编号，默认为1始祖世
     */
    @Excel(name = "内部排行名称")
    @ApiModelProperty("内部排行名称")
    private String logySoftName;

    /**
     * 生平
     */
    @Excel(name = "生平")
    @ApiModelProperty("生平")
    private String ethnicInfo;

    /**
     * 族父编号，默认为1始祖世
     */
    @ApiModelProperty("词条名称，邀请绑定族员,查询列表的时候展示")
    @TableField(exist = false)
    private DictStrVo dictStrVo;

    /**
     * 族父编号，默认为1始祖世
     */
    @ApiModelProperty("词条名称，修改族员,查询列表的时候展示")
    @TableField(exist = false)
    private DictEditStrVo dictEditStrVo;

}
